|
Author |
Thread Statistics | Show CCP posts - 45 post(s) |
|

CCP QC
C C P C C P Alliance
11

|
Posted - 2013.07.11 11:48:00 -
[1] - Quote
Hi all!
As part of the upcoming Alliance Tournament, we will be making a small section of CREST available publicly. These endpoints do NOT require authentication and do NOT require a special license.
TL;DR: Get yourself a REST style browser plugin and head over to http://public-crest-duality.testeveonline.com/tournaments/
Some notes on this: 1) Halp, I clicked your link and my browser downloaded a weird file and I don't know what to do with it!!! The CREST resources aren't webpages. Due to how we use mediatypes (See 9 below) you will in general need to use a browser plugin to see the data. I use Postman in Chrome ( https://chrome.google.com/webstore/detail/postman-rest-client/fdmmgilgnpjigdojojpjoooidkmcomcm ). Just head to whatever search engine you like and search for "MYBROWSER rest plugin" and you should be fine.
2) What do you aim to get from this experimental access? I'd like you guys to try it out and let us know what you think of it. Hopefully if this goes well we will be looking into adding other public endpoint to CREST, as we all wait for the full read/write access.
3) Will this endpoint be live past the AT? Not sure at this point. I hope so.
4) Will this be getting live data during the AT? Yes, it currently runs on Duality, the AT practice server, but will run on TQ for the actual tournament. Data is sourced directly from the actual game cluster, so data will update in real(ish) time.
5) Does it support write access? Nope. Public crest will of course never allow write access.
6) What information will be available: In short: the tournament structure, the teams composition, the match statistics and the per-pilot statistics.
7) Why can't I get to the /xxx/ endpoints? Currently the access is restricted to /tournaments/*, everything else is going to 404. We will hopefully be lifting some of these restriction after the AT, as we assess how this went.
8) What the hell are all those "_str" fields?! Whilst JSON does support sending down 64 bit numbers, javascript doesn't play nicely with them. In order to help support Javascript clients, we thus add the "_str" member next to all fields marked as Numbers. Eve has a lot of 64 bit IDs, sometimes appearing in the weirdest of places, so we played it safe. However, we are looking into only returing those extra attributes if requested by the client. More on that later. See: http://www.ecma-international.org/publications/files/ECMA-ST/Ecma-262.pdf for the gory details on how JS represents Numbers internally.
9) What are those weird Content-Type header values I'm seeing? CREST transfers resources (a tournament, a team, etc) as versionned representation. These representation are indicated using mediatypes. Requesting /tournaments/1/ will give you a "application/vnd.ccp.eve.Tournament-v1+json". Should we need to make non-backwards compatible changes, we would then introduce "application/vnd.ccp.eve.Tournament-v2+json". The URL wouldn't change, only the content-type and the actual content. Client are free to request whichever version they want using the accept header. (I could add a fake v2 of something under /tournaments/ for you guys to experiment with, if you would like)
10) I'm getting 502 errors! Very likely the cluster is currently down. Try again later =)
11) I'm getting 503 errors! You probably requested too fast. Wait a minute and try again. I'll be tweaking throttling parameters over the coming days, so I can't give exact values for this.
|
|
|

CCP QC
C C P C C P Alliance
16

|
Posted - 2013.07.11 15:43:00 -
[2] - Quote
Ferria wrote:so, QC, about Crest, and Dust, and things, anymore info.
On topic, Sweet, thanks
I'd say this is the first roll out of CREST. As far as Dust is concerned, I hope to give the Dust devs public crest capability right after the tournament. CCP Nullarbor just can't wait to get his hands on this, so I'd expect some goodies to come soon(ish) |
|
|

CCP QC
C C P C C P Alliance
16

|
Posted - 2013.07.11 15:57:00 -
[3] - Quote
Oxandrolone wrote:what type of tools do you think this will enable people to build
(I know only very basic c programming and have absolutely no imagination)
Ones that pull statistics about the tournament maybe?
Likely something like that. One could pull all the data about a tournament, or a match, and display it. Could also make a tool that fetches what other teams are flying and catalog their setups. Or make an app that queries the prices of stuff people are flying and take bets on how much they'll loose. Sky is the limit.
But really, this is to get some input from devs with respect to the style of API that is CREST. And also to see what happens when I give the world an unrestricted CREST box =) |
|
|

CCP QC
C C P C C P Alliance
17

|
Posted - 2013.07.11 17:16:00 -
[4] - Quote
Luigi Thirty wrote:Why are you using your own MIME type instead of application/json? Why are you using nginx 1.2 which has more holes than a golf course?
We use our own mime type to support being asked for different version of a resource by the clients. By sending in an accept header with the correct mimetype, say "application/vnd.eve.ccp.Tournament-v1" the server knows to return you that particular version. It allows us to release new versions of these resource and your client will keep working as long as we support the version you want. Asking the server with an accept header that doesn't match returns you the latest version of a particular resource.
We use our own magical build of nginx, which we are in the process of upgrading to latest =) |
|
|

CCP QC
C C P C C P Alliance
18

|
Posted - 2013.07.11 18:45:00 -
[5] - Quote
Tarsas Phage wrote:CCP QC wrote:Luigi Thirty wrote:Why are you using your own MIME type instead of application/json? Why are you using nginx 1.2 which has more holes than a golf course? We use our own mime type to support being asked for different version of a resource by the clients. By sending in an accept header with the correct mimetype, say "application/vnd.eve.ccp.Tournament-v1" the server knows to return you that particular version. It allows us to release new versions of these resource and your client will keep working as long as we support the version you want. I presume this will be done via a Accept-Encoding header in the client's request? Also, will you be sending proper cache control headers in the responses?
Done via the Accept header of the client request actually. We leave accept encoding alone so client can request compression if desired.
Yep. |
|
|

CCP QC
C C P C C P Alliance
24

|
Posted - 2013.07.16 12:51:00 -
[6] - Quote
Mikron Alexarr wrote:Quote:"{ "message": "The route /tournaments/2/series/0 was not found, did you forget the trailing slash?", "key": "routeMissing", "exceptionType": "NotFoundError" }" thank you so much for this!
No problem =) |
|
|

CCP QC
C C P C C P Alliance
24

|
Posted - 2013.07.16 14:27:00 -
[7] - Quote
Docs are coming.
For how fast you can query, ideally don't request the same endpoint until at least max-age as passed, you'd get the same reply anyway, so there is really no reason. Apart from that just slow down if you get 503'd.
|
|
|

CCP QC
C C P C C P Alliance
25

|
Posted - 2013.07.17 15:29:00 -
[8] - Quote
Awesome! |
|
|

CCP QC
C C P C C P Alliance
25

|
Posted - 2013.07.19 14:06:00 -
[9] - Quote
(Posting the edit to original post here, for visibility)
Public CREST endpoint is now available for TQ. Data is live. Of course, not much will happen until the AT actually start =) Duality is still where you might want to look to see data until we start the AT.
http://public-crest.eveonline.com/tournaments/ |
|
|

CCP QC
C C P C C P Alliance
25

|
Posted - 2013.07.20 19:06:00 -
[10] - Quote
Kid Delicious wrote:Quote:Need to renew your domain registration dude ;)
(also, get isk value up on the destroyed ships, that was a >9bil flagship that died in the first match~)
Thanks! can't believe I forgot ISK values, working on an update now. edit : updated
THIS is why I made CREST. Awesome work! |
|
|
|

CCP QC
C C P C C P Alliance
27

|
Posted - 2013.07.23 19:41:00 -
[11] - Quote
Taalla Hita wrote:The application/vnd.ccp.eve.TournamentTeam responses contain links to characters like http://public-crest.eveonline.com/characters/1887431749/ which result in: Quote:{ "message": "The route was not found", "key": "routeMissing", "exceptionType": "NotFoundError" } Must we query the old API for character data?
This is expected. This CREST experiment is limited to /tournaments/*, everything else will 404, as you pointed out. Those endpoints do in fact exist and I will be looking at opening some of them up after the AT.
For now, you are indeed stuck querying the old API. |
|
|

CCP QC
C C P C C P Alliance
28

|
Posted - 2013.07.25 13:58:00 -
[12] - Quote
Hi all.
Since this stuff is going rather well, me and CCP Veritas though it would be nice to push this to 11. So here we go:
The vnd.ccp.eve.TournamentMatch-v1 resource now has two new optional fields: * firstReplayFrame * lastReplayFrame
Both of these link to a TournamentRealtimeMatchFrame-v1 containing a pretty amazing amount of info =)
Because it's easier to see for yourselves, just hit: http://public-crest-duality.testeveonline.com/tournaments/3/series/5/matches/2/realtime/0/
A few notes on this: 1) Is this real life? yep 2) Will this persist post match/tournament/downtime? yes/yes/yes 3) Will this be updated in real-real time during the AT? These endpoints will update more or less in synch with the twitch stream, so in real-time, but delayed by 60 seconds to not leak too much information to participants 4) what happens during real time action if I GET a frame that doesn't exists yet?! I'll hold your request until it does. just make the GET and when it returns you should have your frame. Assuming all goes well. 4) Why?! OH GOD WHY?! I like a good challenge.
o7
NINJA EDIT: these endpoints are under HEAVY dev right now, expect change on them. |
|
|

CCP QC
C C P C C P Alliance
30

|
Posted - 2013.07.25 18:12:00 -
[13] - Quote
I don't want to get into an argument over this, as the system will stay this way, but I disagree with the following:
Quote: If you are returning json, your mime-type is application/json
While I know that many use application/json as the "json" mimetype, I think this is wrong.
See, Json is not what I'm returning. Json is how I encode what I'm returning. The representation of the resource you are transferring is represented in a mimetype, say application/vnd.ccp.eve.TournamentTeam-v1, and the encoding of that representation is +json.
Should we decide to support xml in the future, you'd request application/vnd.ccp.eve.TournamentTeam-v1+xml
In any event, this is not going to change. If you don't like it, that's ok. But I think if you give it a try, you might fine that this way is quite nice to use.
TL;DR: no special header, no url /vX/ style. Give me an Accept header and if I can match it you get exactly that, if not, you get the latest available representation |
|
|

CCP QC
C C P C C P Alliance
31

|
Posted - 2013.07.25 20:14:00 -
[14] - Quote
Marcel Devereux wrote:CCP Veritas wrote:There are *significant* hurdles in the way of applying this technology to Eve in general. The tournament provides us a very bounded environment - 15 minutes max, 24 ships max, constrained location - which makes this sort of thing possible. So you mean those thousands of clients that currently connect to your system is using magic to get the physics data of objects into the client? ;-)
Well, that's partially the magic of Eve. The actual clients don't get x,y,z except when they or someone else joins a bubble. A part from that, they only get the "Dude X started orbiting Dude Y" or "Dude A started shooting dude B" events and the simulation is then synchronized. If no one clicks anything, even a 2000 man fleet fight produces just about no traffic.
The method we use here needs to store all x,y,z and send them down all the time, no local simulation. THAT doesn't scale well to 2000 ship fleet. |
|
|

CCP QC
C C P C C P Alliance
31

|
Posted - 2013.07.25 20:17:00 -
[15] - Quote
Slvrsmth wrote:Long ago, in a discussion far far away, there were magical words CREST and OAuth used in the same sentence. Any news on this, or have I been dreaming? ...
Yep, its been worked on. You'd need CCP Seagull to talk specific delivery dates. I'd say they are good chances of 3rd party apps being able to use our Single Sign On service for authentication before winter expansion, yes.
Doing that is the first step in then supporting registered 3rd party apps with write access to TQ.
|
|
|

CCP QC
C C P C C P Alliance
31

|
Posted - 2013.07.25 20:50:00 -
[16] - Quote
Zael Jun wrote:CCP QC wrote:Well, that's partially the magic of Eve. The actual clients don't get x,y,z except when they or someone else joins a bubble. A part from that, they only get the "Dude X started orbiting Dude Y" or "Dude A started shooting dude B" events and the simulation is then synchronized. If no one clicks anything, even a 2000 man fleet fight produces just about no traffic.
The method we use here needs to store all x,y,z and send them down all the time, no local simulation. THAT doesn't scale well to 2000 ship fleet. Could you not provide that same level of expectation in this case? I mean, I don't really see a problem with people being expected to simulate some information. Is there a particular use case I'm missing?
Let's not derail the thread too much, but in short: Distributed simulation needs to be 100% perfect. If your floating point library is off a tiny bit, the scene will desynch and you have no hope of recovery. Further, you need to know MUCH more than just "Dude A orbits dude B". How fast you orbit is influenced by a ton of stuff, collisions have to be computed in the exact same way. Of course, nothing is impossible, but for now we are experimenting with this positional data method.
Ultimately though, you are just talking to the wrong person =) Other devs are much better suited to talk about Destiny (that's the name of the simulation engine) then I am. |
|
|

CCP QC
C C P C C P Alliance
37

|
Posted - 2013.07.31 22:56:00 -
[17] - Quote
Kid Delicious wrote:I could have sworn there was a post in here about projected effects and maybe drones being added to the realtime endpoint. I've gone through this a few times now and I'm pretty sure I dreamed that.
Are there any plans add projected effects?
Was just about to post about this. So here we go then:
In the interest of Science, we are upgrading the realtime info. Work-in-Progress structure can be seen here: http://public-crest-duality.testeveonline.com/tournaments/5/series/50/matches/0/realtime/300/
Included in that endpoint are drones, missiles and projected effects. That's a lot of data, but as this is an experiment, no sense in holding back =)
we are also introducing an endpoint to get the more static type of information from a scene, which you will need to query if you use the latest realtime data in order to correctly infer what is happening. see: http://public-crest-duality.testeveonline.com/tournaments/5/series/50/matches/0/static/
Included in that endpoint are planets, nebula and such. Also included are ships and their pilot as well as visible turret information.
Expect some degree of change on both of these tomorrow. Namely missiles will get an id and planets will have extra attribute tacked on. Note from CCP Veritas: Missiles may continue to not have IDs in replays captured prior to these change, but may suddenly receive them later.
One big point on the data contained in these endpoints: what you get from here is data that you could infer by looking at a ship. Both game design and the tournament organisers are on board with this. As was the case previously this data is delayed by 60 seconds from the actual tournament.
On the subject of versioned endpoints:
If you pay close attention to the headers we return from the first endpoint, you'll notice you are now getting a application/vnd.ccp.eve.TournamentRealtimeMatchFrame-v2+json as Content-Type.
Should you want to get the old format for whatever reason, make your request with the Accept header set to application/vnd.ccp.eve.TournamentRealtimeMatchFrame-v1+json and you should see the first version data format. Both format will be available for matches from the second and third weekend once the change is out to TQ. |
|
|

CCP QC
C C P C C P Alliance
43

|
Posted - 2013.08.04 20:38:00 -
[18] - Quote
I'll pass the suggestion along, trust me =)
I'd love to see that become reality. |
|
|
|
|